home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / a_utils / debugger / amiga / powervsr.lzh / PVDevelop / PVDevelop.lzh / include / PV / ScreenBase.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-02-05  |  6.0 KB  |  293 lines

  1. #ifndef PV_SCREENBASE_H
  2. #define PV_SCREENBASE_H TRUE
  3. /*
  4. **  $Filename: ScreenBase.h $
  5. **  $Release: 1.13 $
  6. **  $Revision: 37.797 $
  7. **  $Date: 5 Feb 92 $
  8. **
  9. **  Structure definitions for Screen Base (see 'TheWizardCorner')
  10. **
  11. **  ⌐ 1991 Jorrit Tyberghein, included with PowerVisor
  12. **        All Rights Reserved
  13. */
  14.  
  15. #ifndef PV_PVMEMORY_H
  16. #include "PVMemory.h"
  17. #endif
  18.  
  19. #ifndef DOS_DOS_H
  20. #include <dos/dos.h>
  21. #endif
  22.  
  23. #ifndef INTUITION_INTUITION_H
  24. #include <intuition/intuition.h>
  25. #endif
  26.  
  27.  
  28. #define INTMODE_HEX        0
  29. #define INTMODE_DEC        1
  30. #define INTMODE_HEXDEC        2
  31.  
  32. #define SCROLLMODE_NOMORE    0
  33. #define SCROLLMODE_MORE        1
  34.  
  35. #define SNAPMODE_NOSPACE    0
  36. #define SNAPMODE_SPACE        1
  37.  
  38. #define LONESPC_NO        0
  39. #define LONESPC_YES        1
  40.  
  41. #define SBOTTOMMODE_NO        0
  42. #define SBOTTOMMODE_YES        1
  43.  
  44. #define INTERLACE_NO        0
  45. #define INTERLACE_YES        1
  46.  
  47. #define FANCY_NO        0
  48. #define FANCY_YES        1
  49.  
  50. #define LOGWINFLAGS_PRINTFILE    1
  51. #define LOGWINFLAGS_PRINTSCREEN    2
  52. #define LOGWINFLAGS_MORE    4
  53. #define LOGWINFLAGS_TOTALHOME    32
  54. #define LOGWINFLAGS_STATUSLINE    64
  55. #define LOGWINFLAGS_BREAKCHECK    128
  56. #define LOGWINFLAGS_AUTOOUTPUT    256
  57.  
  58. #define BOXTYPE_UPDOWN        0
  59. #define BOXTYPE_LEFTRIGHT    1
  60. #define BOXTYPE_ATOMIC        2
  61.  
  62. #define COLOR_GRAY        0
  63. #define COLOR_BLACK        1
  64. #define COLOR_WHITE        2
  65. #define COLOR_BLUE        3
  66.  
  67. #define Pen_BoxBackground    0
  68. #define Pen_LWBackground    1
  69. #define Pen_NormalText        2
  70. #define Pen_PromptText        3
  71. #define Pen_StatusTextInActive    4
  72. #define Pen_StatusTextActive    5
  73. #define Pen_InActive        6
  74. #define Pen_Active        7
  75. #define Pen_TopLeft3D        8
  76. #define Pen_BottomRight3D    9
  77. #define Pen_BoxLine        10
  78. #define Pen_EmptyBox        11
  79. #define Pen_LeftBox        12
  80. #define Pen_RightBox        13
  81. #define Pen_ShowPos3D        14
  82. #define Pen_SGInActiveText    15
  83. #define Pen_SGInActiveBack    16
  84. #define Pen_SGActiveText    17
  85. #define Pen_SGActiveBack    18
  86. #define Pen_Hilight        19
  87. #define Pen_HilightBack        20
  88.  
  89.  
  90. /* Global structure holding some global window information
  91. */
  92. struct Global
  93.     {
  94.         struct Global *NextGlobal,*PrevGlobal;
  95.         struct List PhysWinList;
  96.         struct LogicalWindow *ActiveLogWin;
  97.         ULONG GlobalSignalSet;
  98.         ULONG pad0;
  99.     };
  100.  
  101. /* The physical window corresponding with an Intuition window. This
  102. ** physical window also manages the logical windows and the boxes.
  103. ** Do not depend on the size of this structure !!!
  104. */
  105. struct PhysicalWindow
  106.     {
  107.         struct Node node;
  108.         struct NewWindow NewWindow;
  109.         struct Window *Window;
  110.         ULONG SignalSet;
  111.         WORD LastCode;
  112.         WORD LastQualifier;
  113.         BYTE LeftBorder;
  114.         BYTE TopBorder;
  115.         BYTE RightBorder;
  116.         BYTE BottomBorder;
  117.         struct Box *MasterBox;
  118.         struct Global *Global;
  119.         struct List LogWinList;
  120.     };
  121.  
  122. /* The logical window.
  123. ** Do not depend on the size of this structure !!!
  124. */
  125. struct LogicalWindow
  126.     {
  127.         struct Node node;
  128.         struct Box *Box;
  129.         WORD x;
  130.         WORD y;
  131.         WORD w;
  132.         WORD h;
  133.         WORD FirstVisibleCol;
  134.         WORD FirstVisibleRow;
  135.         WORD CurrentCol;
  136.         WORD CurrentRow;
  137.         WORD VisibleWidth;
  138.         WORD VisibleHeight;
  139.         ULONG Flags;
  140.         struct TextAttr TextAttr;
  141.         struct TextFont *Font;
  142.         WORD FontWidth;
  143.         WORD FontHeight;
  144.         WORD FontBaseline;
  145.         struct PhysicalWindow *PhysWin;
  146.         WORD OptCol;
  147.         WORD OptRow;
  148.         WORD NrLinesInBuf;
  149.         WORD NrColsInLine;
  150.         APTR Buffer;
  151.         BPTR LogFile;
  152.         WORD MoreLines;
  153.         ULONG pad0;
  154.         APTR ExtraTitle;
  155.         UBYTE Active;
  156.         BYTE TopBorderStatus;
  157.         WORD RealTopCoordinate;
  158.         APTR userdata;
  159.     };
  160.  
  161. /* The box used to manage the available space of a physical window.
  162. ** Do not depend on the size of this structure !!!
  163. */
  164. struct Box
  165.     {
  166.         struct Box *Parent,*ChildA,*ChildB;
  167.         struct LogicalWindow *LogWin;
  168.         struct PhysicalWindow *PhysWin;
  169.         WORD ShareA;
  170.         BYTE Type;
  171.         BYTE Dirty;
  172.         BYTE LeftBorder;
  173.         BYTE TopBorder;
  174.         BYTE RightBorder;
  175.         BYTE BottomBorder;
  176.         WORD realx;
  177.         WORD realy;
  178.         WORD realw;
  179.         WORD realh;
  180.         WORD x1scrollbar;
  181.         WORD y1scrollbar;
  182.         WORD x2scrollbar;
  183.         WORD y2scrollbar;
  184.     };
  185.  
  186. struct DefaultLWSize
  187.     {
  188.         WORD Columns;
  189.         WORD Rows;
  190.         UWORD Mask;
  191.         UWORD Flags;
  192.     };
  193.  
  194. struct LWOpenString
  195.     {
  196.         UBYTE OpenStr[8];
  197.         UWORD Share;
  198.     };
  199.  
  200.  
  201. struct ScreenBase
  202.     {
  203.         UBYTE IntDisplayMode;
  204.         UBYTE ScrollMode;
  205.         UBYTE AddSpaceAfterSnap;
  206.         UBYTE LoneSpcMode;
  207.         UBYTE SBottomMode;
  208.         UBYTE DontClearLine;
  209.         UBYTE pad0;
  210.         UBYTE InterlaceMode;
  211.         UBYTE FancyMode;
  212.         UBYTE pad1;
  213.         ULONG CmdLineLen;
  214.         UBYTE *CmdLine;
  215.         UWORD CursorPos;
  216.         struct DefaultLWSize MainDefSize;
  217.         struct DefaultLWSize ExtraDefSize;
  218.         struct DefaultLWSize RefreshDefSize;
  219.         struct DefaultLWSize DebugDefSize;
  220.         struct DefaultLWSize PPrintDefSize;
  221.         struct DefaultLWSize RexxDefSize;
  222.         struct DefaultLWSize SourceDefSize;
  223.         PVBLOCK SnapCommand;
  224.         LONG pad2;
  225.         LONG pad3;
  226.         struct PhysicalWindow *MainPW;
  227.         struct LogicalWindow *MainLW;
  228.         struct LogicalWindow *RefreshLW;
  229.         struct LogicalWindow *DebugLW;
  230.         struct LogicalWindow *ExtraLW;
  231.         struct LogicalWindow *PPrintLW;
  232.         struct LogicalWindow *RexxLW;
  233.         struct LogicalWindow *SourceLW;
  234.         struct LogicalWindow *CurrentLW;
  235.         WORD PromptPosX;
  236.         WORD LeftStringPosX;
  237.         WORD RightStringPosX;
  238.         struct Screen *OtherScreen;
  239.         struct Screen *PVScreen;
  240.         ULONG IMsgClass;
  241.         UWORD IMsgCode;
  242.         APTR IMsgIAddress;
  243.         WORD IMsgMouseX;
  244.         WORD IMsgMouseY;
  245.         UWORD IMsgQualifier;
  246.         struct Global *TheGlobal;
  247.         LONG pad4;
  248.         LONG pad5;
  249.         struct LWOpenString MainString;
  250.         struct LWOpenString ExtraString;
  251.         struct LWOpenString DebugString;
  252.         struct LWOpenString RefreshString;
  253.         struct LWOpenString PPrintString;
  254.         struct LWOpenString RexxString;
  255.         struct LWOpenString SourceString;
  256.         ULONG StartupFlags;
  257.         WORD WinX;
  258.         WORD WinY;
  259.         WORD WinW;
  260.         WORD WinH;
  261.         WORD ScreenW;
  262.         WORD ScreenH;
  263.         UBYTE FancyPens[24];
  264.         UBYTE NoFancyPens[24];
  265.         APTR CurrentPenTable;
  266.         UBYTE BusyPrompt[6];
  267.         UBYTE MorePrompt[6];
  268.         UBYTE WaitPrompt[6];
  269.         UBYTE LockPrompt[6];
  270.         UBYTE ScanPrompt[4];
  271.         UBYTE FeedBackPrompt[2];
  272.         struct LogicalWindow *LockLW;
  273.         UBYTE *PtrLockPrompt;
  274.         UBYTE LockState;
  275.         UBYTE BusyMode;
  276.         UBYTE GadgetExists;
  277.         UBYTE pad6;
  278.         UBYTE DefaultFontName[34];
  279.         struct TextAttr DefaultFont;
  280.         UWORD LogWinBorderHeight;
  281.         UWORD pad7;
  282.         WORD DragToleranceX1;
  283.         WORD DragToleranceY1;
  284.         WORD DragToleranceX2;
  285.         WORD DragToleranceY2;
  286.         WORD SizeToleranceX;
  287.         WORD SizeToleranceY;
  288.         APTR rtRequestStruct;
  289.                 struct Library *ReqToolsBase;
  290.     };
  291.  
  292. #endif
  293.